package com.sxz.sbs.http.retrofit;

import com.sxz.sbs.app.AppConstant;
import com.sxz.sbs.entity.AuthorityEntity;
import com.sxz.sbs.entity.UploadAppBean;
import com.sxz.sbs.http.response.HttpResponse;
import com.sxz.sbs.module.amortize.AmortizeBankBean;
import com.sxz.sbs.module.client.bean.AddUserListBean;
import com.sxz.sbs.module.client.bean.AllHousesBean;
import com.sxz.sbs.module.client.bean.BuildingBean;
import com.sxz.sbs.module.client.bean.CallRecordsBean;
import com.sxz.sbs.module.client.bean.CarListBean;
import com.sxz.sbs.module.client.bean.ClientBasicBean;
import com.sxz.sbs.module.client.bean.ClientDetailsBean;
import com.sxz.sbs.module.client.bean.ClientDetailsPlanBean;
import com.sxz.sbs.module.client.bean.ClientListBean;
import com.sxz.sbs.module.client.bean.ClientStallListBean;
import com.sxz.sbs.module.client.bean.CompactBean;
import com.sxz.sbs.module.client.bean.ContractTypeBean;
import com.sxz.sbs.module.client.bean.DealRecordBean;
import com.sxz.sbs.module.client.bean.DealScheduleBean;
import com.sxz.sbs.module.client.bean.EvidenceDetailBean;
import com.sxz.sbs.module.client.bean.IntentionStallBean;
import com.sxz.sbs.module.client.bean.RealNameBean;
import com.sxz.sbs.module.client.bean.SelectStallBean;
import com.sxz.sbs.module.client.bean.StaffListBean;
import com.sxz.sbs.module.client.bean.StallRequireBean;
import com.sxz.sbs.module.client.bean.UploadFileBean;
import com.sxz.sbs.module.home.bean.HomeBean;
import com.sxz.sbs.module.home.bean.WeatherBean;
import com.sxz.sbs.module.message.mode.MessageBean;
import com.sxz.sbs.module.message.mode.MyMessageBean;
import com.sxz.sbs.module.mine.mode.AdminPhoneBean;
import com.sxz.sbs.module.mine.mode.GeneralizeCodeBean;
import com.sxz.sbs.module.mine.mode.SystemFileMode;
import com.sxz.sbs.module.mine.mode.UserInfo;
import com.sxz.sbs.module.order.mode.OrderDetailBean;
import com.sxz.sbs.module.order.mode.OrderGroupBean;
import com.sxz.sbs.module.order.mode.OrderModifyStatusBean;
import com.sxz.sbs.module.order.mode.OrderhandleBean;
import com.sxz.sbs.module.performance.mode.FieldRankBean;
import com.sxz.sbs.module.performance.mode.MonthRankBean;
import com.sxz.sbs.module.sale.mode.ImgBackBean;
import com.sxz.sbs.module.sale.mode.StallDetailBean;
import com.sxz.sbs.module.sale.mode.StallListBean;
import com.sxz.sbs.module.sale.mode.StallTypeBean;
import com.sxz.sbs.module.sms.mode.SmsClientBean;
import com.sxz.sbs.module.sms.mode.SmsCustomBean;
import com.sxz.sbs.module.sms.mode.SmsTemplateBean;
import com.sxz.sbs.module.staff.mode.DepartmentListBean;
import com.sxz.sbs.module.staff.mode.PositionListBean;
import com.sxz.sbs.module.staff.mode.StaffDisposeBean;
import com.sxz.sbs.module.telephone.bean.TelBookBean;

import java.util.HashMap;
import java.util.List;

import io.reactivex.Flowable;
import okhttp3.MultipartBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

/**
 * 请求接口
 *
 * @author tian
 */

public interface StallBusinessApi {

    /* ------------------------系统相关--------------------------------- */

    /**
     * 权 限
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/getAuthority")
    Flowable<HttpResponse<List<AuthorityEntity>>> getAuthority(@FieldMap HashMap<String, Object> map);

    /**
     * 登录
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/login")
    Flowable<HttpResponse<String>> login(@FieldMap HashMap<String, Object> map);

    /**
     * 退出登录
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/logout")
    Flowable<HttpResponse<String>> exitLogin(@FieldMap HashMap<String, Object> map);

    /**
     * 获取首页数据
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/getIndexInfo")
    Flowable<HttpResponse<HomeBean>> getHomeData(@FieldMap HashMap<String, Object> map);

    /**
     * 获取天气数据
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/getWeather")
    Flowable<HttpResponse<WeatherBean>> getWeather(@FieldMap HashMap<String, Object> map);

    /**
     * 获取系统文件
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/systemFile/GetSysFile")
    Flowable<HttpResponse<SystemFileMode>> getSystemFile(@FieldMap HashMap<String, Object> map);

    /**
     * 在线更新
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/getAppVersion")
    Flowable<HttpResponse<UploadAppBean>> uploadApp(@FieldMap HashMap<String, Object> map);

    /**
     * 获取技术支持电话
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/getAdminPhone")
    Flowable<HttpResponse<List<AdminPhoneBean>>> getAdminPhone(@FieldMap HashMap<String, Object> map);

    /**
     * 获取电话薄
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/GetPhoneBook")
    Flowable<HttpResponse<List<TelBookBean>>> getTelBook(@FieldMap HashMap<String, Object> map);

    /**
     * 添加电话薄特别关心
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/AddManagerMark")
    Flowable<HttpResponse<String>> addMangerMark(@FieldMap HashMap<String, Object> map);

    /**
     * 取消电话薄特别关心
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/CancelManagerMark")
    Flowable<HttpResponse<String>> cancelMangerMark(@FieldMap HashMap<String, Object> map);

    /**
     * 搜索电话薄
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/GetManagerByKeyword")
    Flowable<HttpResponse<List<TelBookBean.ManagerListBean>>> searchTel(@FieldMap HashMap<String, Object> map);

    /**
     * 上传文件统一接口
     *
     * @param stallId 文件类型
     * @param parts 文件
     * @return 返回结果
     */
    @Multipart
    @POST(AppConstant.HOST_URL + "/fileUpload/UploadFile")
    Flowable<HttpResponse<UploadFileBean>> uploadFile(@Query("fileType") int stallId, @Part MultipartBody.Part parts);

    /**
     * 上传文件列表
     *
     * @param stallId 文件类型
     * @param parts 文件列表
     * @return 返回结果
     */
    @Multipart
    @POST(AppConstant.HOST_URL + "/fileUpload/UploadFileList")
    Flowable<HttpResponse<List<ImgBackBean>>> uploadFileList(@Query("fileType") int stallId, @Part() List<MultipartBody.Part> parts);

    /**
     * 删除文件
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/fileUpload/DeleteFile")
    Flowable<HttpResponse<String>> deleteFile(@FieldMap HashMap<String, Object> map);

    /* --------------------------用户管理相关---------------------------------*/

    /**
     * 获取个人信息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/GetManagerById")
    Flowable<HttpResponse<UserInfo>> getUserInfo(@FieldMap HashMap<String, Object> map);

    /**
     * 修改密码接口
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/ChangePassword")
    Flowable<HttpResponse<String>> alterPassword(@FieldMap HashMap<String, Object> map);

    /**
     * 上传头像
     *
     * @param file 头像文件
     * @return 返回结果
     */
    @Multipart
    @POST(AppConstant.HOST_URL + "/manager/UploadHeadPic")
    Flowable<HttpResponse<String>> uploadHead(@Part MultipartBody.Part file);
    /* ---***---------------------员工管理相关---------------------------------*/

    /**
     * 获取所有楼盘列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/getParkingList")
    Flowable<HttpResponse<AllHousesBean>> getAllHouses(@FieldMap HashMap<String, Object> map);

    /**
     * 获得员工所在案场列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/getMyParkingList")
    Flowable<HttpResponse<AllHousesBean>> getMyParking(@FieldMap HashMap<String, Object> map);

    /**
     * 添加员工
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/addStaff")
    Flowable<HttpResponse<String>> addStaff(@FieldMap HashMap<String, Object> map);

    /**
     * 获取部门列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/getDepartmentList")
    Flowable<HttpResponse<List<DepartmentListBean>>> getDepartmentList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取职位列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/getPositionList")
    Flowable<HttpResponse<List<PositionListBean>>> getPositionList(@FieldMap HashMap<String, Object> map);

    /**
     * 根据案场id获取员工列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/getStaffListByPID")
    Flowable<HttpResponse<StaffDisposeBean>> getStaffByPid(@FieldMap HashMap<String, Object> map);

    /**
     * 员工离职
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/dimission")
    Flowable<HttpResponse<String>> staffDimission(@FieldMap HashMap<String, Object> map);

    /**
     * 案场内调换
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/swapInner")
    Flowable<HttpResponse<String>> staffSwapInner(@FieldMap HashMap<String, Object> map);

    /**
     * 案场间调换
     *
     * @param map 请求参数
     * @return 返回结果 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/staff/swapOuter")
    Flowable<HttpResponse<String>> staffSwapOut(@FieldMap HashMap<String, Object> map);


    /* ---***---------------------短信群发相关---------------------------------*/

    /**
     * 获取短信模板列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/shortMsg/getTemplateList")
    Flowable<HttpResponse<List<SmsTemplateBean>>> getSmsTemplate(@FieldMap HashMap<String, Object> map);

    /**
     * 获取短信客户类别
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/shortMsg/getCoustomNumList")
    Flowable<HttpResponse<List<SmsClientBean>>> getSmsClientNum(@FieldMap HashMap<String, Object> map);

    /**
     * 获取短信客户列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/shortMsg/getCustomList")
    Flowable<HttpResponse<List<SmsCustomBean>>> getSmsCustomList(@FieldMap HashMap<String, Object> map);

    /**
     * 群发短信
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/shortMsg/sendMessage")
    Flowable<HttpResponse<String>> sendSms(@FieldMap HashMap<String, Object> map);


    /* ---***---------------------消息管理相关---------------------------------*/

    /**
     * 获取消息分类列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/message/GetMessageType")
    Flowable<HttpResponse<List<MyMessageBean>>> getMessageType(@FieldMap HashMap<String, Object> map);

    /**
     * 获取消息列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/message/GetMessageList")
    Flowable<HttpResponse<MessageBean>> getMessageList(@FieldMap HashMap<String, Object> map);

    /**
     * 处理消息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/message/HandleMessage")
    Flowable<HttpResponse<String>> handleMessage(@FieldMap HashMap<String, Object> map);


    /* ---***---------------------排行榜管理相关---------------------------------*/

    /**
     * 获取本月月榜
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetCurrentMonthAchieve")
    Flowable<HttpResponse<MonthRankBean>> getMonthRank(@FieldMap HashMap<String, Object> map);

    /**
     * 获取案场榜
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetParkingMonthAchieve")
    Flowable<HttpResponse<FieldRankBean>> getFieldRank(@FieldMap HashMap<String, Object> map);

    /**
     * 月榜点赞
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddPraise")
    Flowable<HttpResponse<String>> addMonthPraise(@FieldMap HashMap<String, Object> map);

    /**
     * 案场榜点赞
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddParkingPraise")
    Flowable<HttpResponse<String>> addFieldPraise(@FieldMap HashMap<String, Object> map);


    /* ---***---------------------车位销控管理相关---------------------------------*/

    /**
     * 获取销控车位列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/getParkinglotList")
    Flowable<HttpResponse<StallListBean>> getParkingStall(@FieldMap HashMap<String, Object> map);

    /**
     * 获取车位详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/getParkinglotDetail")
    Flowable<HttpResponse<StallDetailBean>> getStallDetail(@FieldMap HashMap<String, Object> map);

    /**
     * 获取车位类型
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/ParkingSpaceEnum")
    Flowable<HttpResponse<List<StallTypeBean>>> getStallType(@FieldMap HashMap<String, Object> map);

    /**
     * 保存车位详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/saveParkinglot")
    Flowable<HttpResponse<String>> saveStallDetail(@FieldMap HashMap<String, Object> map);

    /**
     * 保存图片
     *
     * @param stallId  SpaceId
     * @param parts 文件列表
     * @return 返回结果
     */
    @Multipart
    @POST(AppConstant.HOST_URL + "/parking/SaveImg")
    Flowable<HttpResponse<List<ImgBackBean>>> saveStallPhoto(@Query("SpaceId") int stallId, @Part() List<MultipartBody.Part> parts);

    /**
     * 删除图片
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/deleteImg")
    Flowable<HttpResponse<String>> deleteStallPhoto(@FieldMap HashMap<String, Object> map);


    /* ---***---------------------客户管理相关---------------------------------*/
     /*// 获取所有楼盘列表
     @FormUrlEncoded
     @POST(AppConstant.HOST_URL+"/parking/SelectParking")
     Flowable<HttpResponse<AllHousesBean>> getAllHouses(@FieldMap HashMap<String, Object> map);*/

    /**
     * 获取所有客户列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustom")
    Flowable<HttpResponse<ClientListBean>> getClientList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取楼盘下所有楼号
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/build/SelectBuild")
    Flowable<HttpResponse<BuildingBean>> getBuildingList(@FieldMap HashMap<String, Object> map);

    /**
     * 根据楼盘ID查找在此楼盘工作的比自己级别低的业务员
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/parking/GetManagerListByParking")
    Flowable<HttpResponse<List<StaffListBean>>> getStaffList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取客户简介版信息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomLessInfo")
    Flowable<HttpResponse<ClientDetailsBean>> getClientDetails(@FieldMap HashMap<String, Object> map);

    /**
     * 获取客户跟踪进度
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetTrackRecord")
    Flowable<HttpResponse<ClientDetailsPlanBean>> getClientDetailsPlan(@FieldMap HashMap<String, Object> map);

    /**
     * 新增跟进记录(更新用户星级)
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddTrackRecord")
    Flowable<HttpResponse<String>> getAddPlan(@FieldMap HashMap<String, Object> map);

    /**
     * 预约看车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddOrEditAppointment")
    Flowable<HttpResponse<String>> getLookStall(@FieldMap HashMap<String, Object> map);

    /**
     * 添加意向客户
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddOrEditMtoC")
    Flowable<HttpResponse<String>> getAddIntentionClient(@FieldMap HashMap<String, Object> map);

    /**
     * 添加定金客户
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddAchievement")
    Flowable<HttpResponse<String>> getAddMoneyClient(@FieldMap HashMap<String, Object> map);

    /**
     * 添加已成交客户
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddAchievementAllMoney")
    Flowable<HttpResponse<String>> getAddBargainClient(@FieldMap HashMap<String, Object> map);

    /**
     * 添加业主
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddOrUpdateCustom")
    Flowable<HttpResponse<String>> getAddClient(@FieldMap HashMap<String, Object> map);

    /**
     * 添加业主意向
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomIntentWord")
    Flowable<HttpResponse<List<StallRequireBean>>> getIntentLabel(@FieldMap HashMap<String, Object> map);


    /**
     * 获取客户基本信息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomInfo")
    Flowable<HttpResponse<ClientBasicBean>> getEssentialInformation(@FieldMap HashMap<String, Object> map);

    /**
     * 通话记录
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCallLog")
    Flowable<HttpResponse<List<CallRecordsBean>>> getCallRecords(@FieldMap HashMap<String, Object> map);

    /**
     * 新增通话记录
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddCallLog")
    Flowable<HttpResponse<String>> addCallRecord(@FieldMap HashMap<String, Object> map);

    /**
     * 进度记录
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetTransactionrecordList")
    Flowable<HttpResponse<DealRecordBean>> getPlanList(@FieldMap HashMap<String, Object> map);

    /**
     * 进度详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetTransactionrecord")
    Flowable<HttpResponse<List<DealScheduleBean>>> getDetailsPlan(@FieldMap HashMap<String, Object> map);

    /**
     * 获取客户车辆列表信息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomCar")
    Flowable<HttpResponse<List<CarListBean>>> getCarList(@FieldMap HashMap<String, Object> map);

    /**
     * 删除客户车辆
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/DeleteCustomCar")
    Flowable<HttpResponse<String>> deleteCarList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取客户车位列表信息
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomSpace")
    Flowable<HttpResponse<List<ClientStallListBean>>> getStallList(@FieldMap HashMap<String, Object> map);

    /**
     * 删除车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomSpace")
    Flowable<HttpResponse<String>> deleteStallList(@FieldMap HashMap<String, Object> map);

    /**
     * 新增车辆
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddEditCustomCar")
    Flowable<HttpResponse<String>> getAddCar(@FieldMap HashMap<String, Object> map);

    /**
     * 新增编辑车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddEditCustomSpace")
    Flowable<HttpResponse<String>> addStall(@FieldMap HashMap<String, Object> map);

    /**
     * 根据停车场获取停车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetParkingSpaceList")
    Flowable<HttpResponse<SelectStallBean>> getSelectStall(@FieldMap HashMap<String, Object> map);

    /**
     * 上传定金合同
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddAchievement")
    Flowable<HttpResponse<String>> uploadEvidence(@FieldMap HashMap<String, Object> map);

    /**
     * 上传成交合同
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/AddAchievementAllMoney")
    Flowable<HttpResponse<String>> uploadDealEvidence(@FieldMap HashMap<String, Object> map);

    /**
     * 合同 定金凭证列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetAchievement")
    Flowable<HttpResponse<CompactBean>> getCompactList(@FieldMap HashMap<String, Object> map);

    /**
     * 合同 定金凭证详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/GetContractInfo")
    Flowable<HttpResponse<EvidenceDetailBean>> getEvidenceDetail(@FieldMap HashMap<String, Object> map);

    /**
     * 提交确定分配客户
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/manager/AssigningCustom")
    Flowable<HttpResponse<String>> getSubmit(@FieldMap HashMap<String, Object> map);

    /**
     * 获取意向车位列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetIntentSpace")
    Flowable<HttpResponse<List<IntentionStallBean>>> getIntentionStall(@FieldMap HashMap<String, Object> map);

    /**
     * 添加意向车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddCutomSpace")
    Flowable<HttpResponse<String>> addIntentStall(@FieldMap HashMap<String, Object> map);


    /**
     * 删除意向车位
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/DeleteCustomSpace")
    Flowable<HttpResponse<String>> getCancelIntentionStall(@FieldMap HashMap<String, Object> map);

    /**
     * 提交实名
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/AddorEditCustomIdCard")
    Flowable<HttpResponse<String>> submitRealName(@FieldMap HashMap<String, Object> map);

    /**
     * 获取实名详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/GetCustomIdCard")
    Flowable<HttpResponse<RealNameBean>> getRealName(@FieldMap HashMap<String, Object> map);

    /**
     * 获取合同类型列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/getContractTypeList")
    Flowable<HttpResponse<List<ContractTypeBean>>> getContractTypeList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取合同类型
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/achievement/getContractType")
    Flowable<HttpResponse<ContractTypeBean>> getContractType(@FieldMap HashMap<String, Object> map);

    /**
     * 获取验证码
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST("http://120.27.27.144:8080/91cw" + AppConstant.SEND_CODE + "system/sendValidateMCD")
    Flowable<HttpResponse<String>> getMessageCode(@FieldMap HashMap<String, Object> map);

    /**
     * 添加用户（注册）
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/RegisterAPP")
    Flowable<HttpResponse<String>> getRegister(@FieldMap HashMap<String, Object> map);

    /**
     * 推荐用户列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/showRalationList")
    Flowable<HttpResponse<AddUserListBean>> getRegisterUserList(@FieldMap HashMap<String, Object> map);

    /**
     * 获取分期银行
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/login/calculator")
    Flowable<HttpResponse<List<AmortizeBankBean>>> getBank(@FieldMap HashMap<String, Object> map);

    /**
     * 推荐领奖金
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/custom/scanGiveMoney")
    Flowable<HttpResponse<GeneralizeCodeBean>> getGeneralizeCode(@FieldMap HashMap<String, Object> map);

    /**
     * 订单详情
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/getOrderDetails")
    Flowable<HttpResponse<OrderDetailBean>> getOrderDetail(@FieldMap HashMap<String, Object> map);

    /**
     * 订单列表
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/getOrderList")
    Flowable<HttpResponse<OrderhandleBean>> getOrderList(@FieldMap HashMap<String, Object> map);

    /**
     * 订单修改状态
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/getOrderChangeStatus")
    Flowable<HttpResponse<List<OrderModifyStatusBean>>> getOrderModifyStatus(@FieldMap HashMap<String, Object> map);

    /**
     * 分配订单
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/distributeOrder")
    Flowable<HttpResponse<String>> allotOrder(@FieldMap HashMap<String, Object> map);

    /**
     * 修改订单
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/updateOrder")
    Flowable<HttpResponse<String>> modifyOrder(@FieldMap HashMap<String, Object> map);

    /**
     * 订单状态
     *
     * @param map 请求参数
     * @return 返回结果
     */
    @FormUrlEncoded
    @POST(AppConstant.HOST_URL + "/order/getOrderGroup")
    Flowable<HttpResponse<List<OrderGroupBean>>> getOrderGroup(@FieldMap HashMap<String, Object> map);

}
